import Vue from 'vue'
import router from './router'
import mixin  from './Mixins/mixin'

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
//引入axios
import axios from 'axios'
// axios.defaults.withCredentials=true;
// 配置axios琳娜节气
// axios.interceptors.request.use(
//   config => {
//       var token = localStorage.getItem('accessToken');
//       if (token) {  // 每次发送请求之前判断是否存在token，如果存在，
//         //则统一在http请求的header都加上token，不用每次请求都手动添加了
//           console.log("存在token"+token);
//           config.headers.Authorization = token;
//       }
//       return config;
//   },
//   err => {
//       return Promise.reject(err);
//   });

Vue.prototype.$http = axios;
//引入qs,解决axios post请求传参问题
import qs from 'qs'
Vue.prototype.$qs = qs;
//引入表单验证
import VueForm from 'vue-form';
Vue.use(VueForm);

//引入自定义的全局指令
import CustomeDirective from  './Directive/Directives'

import './Plugins/MTValidate'

// 引入bootstrap css
import './assets/css/bootstrap.css'
import 'bulma/css/bulma.css'
import './assets/css/style.css'
// import PYPlugin from './Plugins/PYPlugin'
// Vue.use(PYPlugin);
//设置baseURL,不同环境用不同的URL
if(true){
  // 生产服务器
  window.baseURL = "http://112.74.74.235:8080/ruisiyuan"
}else{
  // 本地测试地址
  window.baseURL = "http://192.168.1.117:8080/ruisiyuan"
}

var routeList = [];

// 登录判断
router.beforeEach((to,from,next)=>{
  // 判断是否已经登录
  if(to.path==='/login'){
     //清空session中数据,重新代开登录界面
        localStorage.clear();
        next();
  }else{
    //查看sessionStorage中是否有该数据
    var token = localStorage.getItem("accessToken");
    //每次刷新页面都会执行这段代码,在这里获取所有的配置,并将配置放到vuex中,方便多个组件获取使用
    var configs = [];
    var configURL = window.baseURL + "/backstage/config/findConfigs?token="+token;
    if(!Vue.prototype.$config){
      Vue.prototype.$http.get(configURL)
      .then((response)=>{
          configs = response.data.data;
          var dataObj = {}
              for(var i=0;i<configs.length;i++){
                  var data = configs[i];
                  if(!dataObj[data.ktype]){
                      dataObj[data.ktype] = [data]
                  }else{
                      dataObj[data.ktype].push(data);
                  }
              }
              Vue.prototype.$config = dataObj;
      })
      .catch((error)=>{
          console.log(error);
      })
    }
    
    //设置token
    Vue.prototype.$token = token;
    if(token){
        next();
    }else{
      next({path: '/login',query: {redirect: to.fullPath}})
    }
  }
})
export default {

}